package main

import (
	"fmt"
	"io"
	"os"
)

func readAll() {
	fileObj, err := os.Open("/Users/bytedance/go/learngo/文件操作/xx.txt") // 绝对路径
	if err != nil {
		fmt.Printf("open file failed %v\n", err)
		return
	}
	defer fileObj.Close() // 延迟关闭

	for {

		// 读取文件内容
		var tmp = make([]byte, 128) // 一次读取128个字节
		n, err := fileObj.Read(tmp)
		// 文件可能超过128个字节，会读不完，所以使用for循环，接续往下读，直到读完为止
		if err == io.EOF { // end of file
			// 把当前读了多少字节打印出来，然后退出
			fmt.Println(string(tmp[:n])) //:n代表切片最后
		}
		if err != nil {
			fmt.Printf("read from file failed ,err:%v\n", err)
			return
		}
		fmt.Printf("read %d bytes from file\n", n)
		fmt.Println(string(tmp)) //字节类型数据强制转换为字符串类型打印出来
	}
}
func main() {
	readAll()
}
